home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 138 / 138.xpi / chrome / stumbleupon.jar / content / ratingDialog.js < prev    next >
Text File  |  2009-05-22  |  3KB  |  154 lines

  1. var theurl = "";
  2. var theurlid = 0;
  3. var tags_was_focused = false;
  4. var old_tags_value = "";
  5. var searchbox_value = "";
  6.  
  7. // handle dialog load event
  8. function init()
  9. {
  10.     // grab the url you are commenting on
  11.     var args = window.arguments;
  12.     theurl = args[0];
  13.     theurlid = args[1];
  14.     searchbox_value = args[2];
  15.     quote = args[3];
  16.     
  17.     document.getElementById("firstrater-prompt").hidden = (theurlid != 0);
  18.     
  19.     document.getElementById("review").value = quote;
  20.  
  21.     var tags = document.getElementById("tags");
  22.  
  23.     tags.autocompleteDatasource =
  24.                 {
  25.                     getResults : function ()
  26.                     {
  27.                         var tags = document.getElementById("tags");
  28.                         return opener.su_get_autocomplete_results(
  29.                                     "tag",
  30.                                     tags.value,
  31.                                     tags.maxRows,
  32.                                     new Array(searchbox_value));
  33.                     }
  34.                 }
  35. }
  36.  
  37. // handle dialog accept event
  38. function doOK()
  39. {
  40.     // blank url
  41.     if (theurl == "" || theurlid == 0)
  42.         return true;
  43.  
  44.     var tags = document.getElementById("tags").value;
  45.     if (tags == null)
  46.         return true;
  47.  
  48.     var review = document.getElementById("review").value;
  49.     if (review == null)
  50.         return true;
  51.  
  52.     var tagerror = opener.su_validate_tagstring(tags);
  53.     if (tagerror != null)
  54.     {
  55.         alert(tagerror);
  56.         document.getElementById("tags").focus();
  57.         return false;
  58.     }    
  59.     
  60.     // We create zero delay timeouts in the context of the parent 
  61.     // window, then destroy this window after two seconds.  The delay
  62.     // adds the illusion of immediacy.  And the zero delay timeouts 
  63.     // make sure the submissions occur even if this window is destroyed
  64.     // while the submissions are in progress. -- JW
  65.     
  66.     if (review.search(/^\s*$/) == -1)
  67.     {
  68.         // add review
  69.         opener.setTimeout(function(parent, theurlid, review){ parent.su_add_review(theurlid, review); }, 0, opener, theurlid, review);
  70.     }
  71.     if (tags != '')
  72.     {
  73.         opener.document.getElementById("su_searchbox").value = tags;
  74.         opener.setTimeout(function(parent, tags){ parent.su_tagit(tags, false); }, 0, opener, tags);
  75.     }
  76.  
  77.     setTimeout("closeWindow();", 2000);
  78.  
  79.     return false;
  80. }
  81.  
  82. // used by doOK() to close this window after a timeout
  83. function closeWindow()
  84. {
  85.     close();
  86. }
  87.  
  88. // handle dialog cancel event
  89. function doCancel()
  90. {
  91.     return true;
  92. }
  93.  
  94. // handle tags box click event
  95. function tags_click_kludge(eventId)
  96. {
  97.     // This handles value selection in the case where the user is
  98.     // clicking back and forth between tags and another field
  99.     // (like review).  Without this kludge, the text is selected only
  100.     // every second time.  (ref: Firefox 1.5, XP) -- JW
  101.  
  102.     switch (eventId)
  103.     {
  104.         case "click":
  105.             var tags = document.getElementById('tags');
  106.             var selected = (tags.value.length != 0)
  107.                         && ((tags.selectionEnd - tags.selectionStart) == tags.value.length);
  108.  
  109.             if ((! tags_was_focused) && (! selected))
  110.             {
  111.                 tags.select();
  112.             }
  113.             tags_was_focused = true;
  114.         break;
  115.         case "blur":
  116.             tags_was_focused = false;
  117.         break;
  118.     }
  119.  
  120.     return true;
  121. }
  122.  
  123. // handle tags box focus event
  124. function handle_tags_focus(evt)
  125. {
  126.     var tags = document.getElementById('tags');
  127.  
  128.     if (tags.value != "")
  129.     {
  130.         tags.select();
  131.     }
  132. }
  133.  
  134. // handle tags box keyup event
  135. function handle_tags_keyup(evt)
  136. {
  137.     old_tags_value = document.getElementById("tags").value;
  138.     return true;
  139. }
  140.  
  141. // handle tags box textentered event
  142. function handle_tags_textentered()
  143. {
  144.     document.getElementById("stumble_rating_dialog").acceptDialog();
  145. }
  146.  
  147. // handle tags box textreverted event
  148. function handle_tags_textreverted()
  149. {
  150.     document.getElementById("tags").value = old_tags_value;
  151.     document.getElementById("tags").select();
  152. }
  153.  
  154.